package maquina.modelol.elector;

import java.util.ArrayList;
import java.util.List;

public class ModalidadMultiple extends Modalidad{

	private  List<Candidato> seleccionMultiple;
	
	private int cantSelecc = 1;
	
	public ModalidadMultiple(int cantSelecc){
		
		if(cantSelecc > 0){
		
			seleccionMultiple = new ArrayList<Candidato>();
		
			this.cantSelecc = cantSelecc;
		}
		else{
			
			throw new IllegalArgumentException("Cantidad debe ser mayor a 0");
		}
	}
	@Override
	boolean isCompleta() {
	    
		return cantSelecc == seleccionMultiple.size();
	}

	@Override
	boolean seleccionar(Candidato candidato) {

		if(candidato != null && !isCompleta() && !seleccionMultiple.contains(candidato)){
			
			seleccionMultiple.add(candidato);
		
			return true;
		}
		
		else{ 
			return false;
		}
	}

	@Override
	Voto getVoto() {

		List<Candidato> candidatos = seleccionMultiple;
		
		seleccionMultiple = new ArrayList<Candidato>();
		
		return new VotoMultiple(candidatos);
	}
}
